草庐IT

Python NotImplemented 常量

全部标签

C++ 期望常量表达式

#include#include#include#include#includeusingstd::ifstream;usingnamespacestd;intmain(void){intcount=0;floatsum=0;floatmaximum=-1000000;floatsumOfX;floatsumOfY;intsize;intnegativeY=0;intpositiveX=0;intnegativeX=0;ifstreampoints;//thepointstobeimportedfromfile//points.open("data.dat");//points>>si

c++ - 传递给函数的数组参数不是常量指针吗?

考虑代码:voidfoo(chara[]){a++;//worksfine,getscompiled//...}现在,考虑一下:voidfoo(){chara[50];a++;//Compilererror//...}我听说数组相当于一个常量指针并且不能递增,因为它不是左值...那为什么第一个代码被编译了,是不是因为函数的数组参数作为指针传递,即T[]被转换为T*用于传递..因此,foo(a)将a作为指针传递。但它不会再次转换回T[]因为声明为:voidfoo(chara[]); 最佳答案 当您将数组作为参数传递给函数时,它会衰减为

c++ - 如何输入 int64_t/uint64_t 常量?

我想做的是定义一个等于2^30的常量(我可能会将其更改为2^34之类的东西,所以我更愿意为它设置一个大于32位的空间)。为什么以下最小(?)示例无法编译?#include//test.cpp:4:33:error:expectedprimary-expressionbeforenumericconstant//test.cpp:4:33:error:expected')'beforenumericconstantconstuint64_ttest=(uint64_t1) 最佳答案 您可以使用宏:UINT64_C为了定义64位无符号整

c++ - 转义字符串常量以嵌入 std::regex

C++11有6种不同的正则表达式语法供您使用。就我而言,我正在与使用修改后的ECMAScript正则表达式的组件进行交互。我需要创建一个正则表达式“匹配以X开头的字符串”,其中X是我拥有的字符串文字。所以我要的正则表达式大概是^X.*。除了字符串X可以包含更多正则表达式特殊字符,我希望它们出现。这意味着我真的想要^escaped(X).*.现在,我可以阅读ECMAScript文档,找到所有具有特殊含义的字符,编写一个转义它们的函数,然后完成。但这似乎不够优雅、低效且容易出错——尤其是如果我想支持C++目前支持的所有6种正则表达式,更不用说将来了。标准中是否有一种简单的方法来转义文字字符

C++ 文字字符串和常量字符串引用参数

这个问题在这里已经有了答案:Stringliteralmatchesbooloverloadinsteadofstd::string(4个答案)关闭7年前。我有两个重载函数,分别是conststd::string&和bool。我现在用文字字符串调用函数。bool版本被调用。这有点奇怪,而且确实是一个陷阱。谁能解释一下为什么?请参阅下面的代码。输出是Write==1#include#includevoidwrite(conststd::string&name_){std::cout

c++ - 在哪里放置编译时常量数组?

假设我有一个存储前10个素数的数组,如下所示:constintprimes[]={2,3,5,7,11,13,17,19,23,29};只要我有1个.cpp文件,这一切都非常简单。但是,如果我有多个.cpp文件,我真的不知道该把这个数组放在哪里。一个明显的解决方案是这样的://primes.h:externconstintprimes[10];//primes.cpp:externconstintprimes[]={2,3,5,7,11,13,17,19,23,29};但是,这样做的问题是素数数组不再是编译时常量。假设x.cpp想要进行一些涉及primes[k]的繁重计算,其中k是编译

c++ - __builtin_round 不是常量表达式

在G++中,各种内置数学函数在某些条件下是constexpr。例如,以下编译:staticconstexprdoubleA=__builtin_sqrt(16.0);staticconstexprdoubleB=__builtin_pow(A,2.0);虽然它们并不总是constexpr,这取决于参数。例如,__builtin_sqrt(NAN)在用作常量表达式时会导致编译错误。但我遇到了一个奇怪的情况,在我看来它应该是constexpr,但它不是:staticconstexprdoublevalue(){return1.23;}staticconstexprdoubleresult=

c++ - const 变量作为非类型模板参数(VARIABLE 不能出现在常量表达式中)

为什么会这样?char__nontype[]="foo";typedefTemplateClassMyClass;但这(带有常量变量)不是吗?constchar__nontype[]="foo";typedefTemplateClassMyClass;编译器错误:错误:‘__nontype’不能出现在常量表达式中错误:模板参数2无效 最佳答案 区别是因为const影响链接。如果您添加extern,它会起作用。也就是说,据我所知:14.3.2Templatenon-typearguments[temp.arg.nontype]Atem

c++ - 为什么指向非常量成员函数的指针不能指向与常量成员函数相反的指针?

为什么指向成员函数的指针不能指向const成员函数?structA{voidg(){};voidf()const{}};后面的代码:void(A::*fun)()=&A::f;此代码产生:error:cannotconvert‘void(A::*)()const’to‘void(A::*)()’ininitialization当然,它使用&A::g而不是&A::f进行编译。相反的情况:void(A::*fun)()const=&A::g;错误是:error:cannotconvert‘void(A::*)()’to‘void(A::*)()const’ininitialization第

c++ - 这个 constexpr 整数不是空指针常量吗?

考虑以下C++11程序及其在GCC4.7.2中的结果:intmain(){constexprinti=0;int*p=i;}//g++-g-ggdb-Wall-Wextra-pedantic-std=c++11t.cpp//t.cpp:Infunction'intmain()'://t.cpp:4:13:error:invalidconversionfrom'int'to'int*'[-fpermissive]//t.cpp:4:9:warning:unusedvariable'p'[-Wunused-variable]根据标准:[C++11:4.10/1]:Anullpointerc